package com.fs.cv.service.impl;

import com.fs.cv.dao.ClassManagementDao;
import com.fs.cv.pojo.pojodao.Class;
import com.fs.cv.pojo.pojodao.Headmaster;
import com.fs.cv.pojo.pojoview.ClassHeadmaster;
import com.fs.cv.pojo.pojoview.ClassInfo;
import com.fs.cv.service.ClassManagementService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>班级管理service实现层</p>
 *
 * @author : 苏明友
 * @date : 2020-10-10 13:35
 **/
@Service
public class ClassManagementServiceImpl implements ClassManagementService {

    @Autowired
    private ClassManagementDao classManagementDao;

    /**
     * 方法描述:根据user_id查询到具体的教务主任，然后教务主任再通过自己的专业id查询到自己所管理的班级
     * @参数 [userId]
     * @返回值 java.util.List<com.fs.cv.pojo.pojoview.ClassInfo>
     * @作者 苏明友
     * @时间 2020/10/10
     */
    @Override
    public List<ClassInfo> getAllClassInfoToView(Integer userId) {
        return classManagementDao.getAllClassInfoToView(userId);
    }

    /**
     * 方法描述:根据userId来查询教务主任的专业ID
     * @参数 [userId]
     * @返回值 java.util.List<com.fs.cv.pojo.pojoview.ClassInfo>
     * @作者 苏明友
     * @时间 2020/10/10
     */
    @Override
    public List<ClassInfo> getDepartmentIdByUserId(Integer userId) {
        return classManagementDao.getDepartmentIdByUserId(userId);
    }

    /**
     * 方法描述:向数据库中添加一个班级
     * @参数 [classInfo]
     * @返回值 int
     * @作者 苏明友
     * @时间 2020/10/10
     */
    @Override
    public int addClassInfo(ClassHeadmaster classHeadmaster) {
        return classManagementDao.addClassInfo(classHeadmaster);
    }

    @Override
    public ClassInfo showClassIdToAddHeadmaster(String className) {
        return classManagementDao.showClassIdToAddHeadmaster(className);
    }

    /**
     * 方法描述:使用前端模态框向班主任表中添加班主任信息
     * @参数 [classInfo]
     * @返回值 int
     * @作者 苏明友
     * @时间 2020/10/10
     */
    @Override
    public int addHeadmasterInfo(ClassHeadmaster classHeadmaster) {
        return classManagementDao.addHeadmasterInfo(classHeadmaster);
    }

    /**
     * 方法描述:根据classId逻辑删除班级信息
     * @参数 [classId]
     * @返回值 int
     * @作者 苏明友
     * @时间 2020/10/11
     */
    @Override
    public int deleteClassInfoByClassId(Integer classId) {
        return classManagementDao.deleteClassInfoByClassId(classId);
    }

    /**
     * 方法描述:删除班级的同时逻辑删除该班的班主任
     * @参数 [classId]
     * @返回值 int
     * @作者 苏明友
     * @时间 2020/10/11
     */
    @Override
    public int updateHeadmasterStateByClassId(Integer classId) {
        return classManagementDao.updateHeadmasterStateByClassId(classId);
    }


    /**
     * 方法描述:根据classId查询那些班主任没有管理对应的班级-->未完成，不影响运行
     * @参数 []
     * @返回值 java.util.List<com.fs.cv.pojo.pojodao.Headmaster>
     * @作者 苏明友
     * @时间 2020/10/11
     */
    @Override
    public List<Headmaster> getOneHeadmasterInfoByClassId( ) {
        return classManagementDao.getOneHeadmasterInfoByClassId();
    }



    @Override
    public List<Class> getOneClassInfo(Integer classId) {
        return classManagementDao.getOneClassInfo(classId);
    }

    @Override
    public int updateHeadmasterInfo(Headmaster headmaster) {
        return classManagementDao.updateHeadmasterInfo(headmaster);
    }


}
